The present invention relates generally to a client/server type system wherein an information providing server provides information upon request from an information display client, and more particularly to a real-time information transmission system for realizing novel and advantageous information transmission from an information providing server to an information display client.
In these years, the WWW (World Wide Web) has permeated through societies, and various information is provided via the WWW. The WWW is a distributed-type information-provision/information-display system using the Internet, and it comprises servers (information providing servers) and clients. As is well known, a worldwide information network using hypertexts including images and sounds has been constructed by the WWW and utilized by many people.
In general, the server provides information to the client in units of a document called xe2x80x9cpagexe2x80x9d. The page is an electronic file described in a format called HTML (Hypertext Markup Language). The client is normally realized with use of a software called xe2x80x9cbrowserxe2x80x9d for information display (information browsing), and the browser accesses the server to acquire and display pages including images and sounds.
In the general use of the WWW, an address (called URL) of a page to be displayed is designated in the browser, and the browser issues a request to the server. The server returns the page corresponding to the address to the browser. It should be noted here that the server performs nothing unless it receives a request from the browser. This means that even if pages stored in the server have been updated, the browser is unable to immediately know the change.
For example, while the browser is displaying pages such as news and weather reports, which are updated in real time, the browser is not informed of the fact that the pages have been updated on the server side. That is, the content of the updated page is not reflected on the display screen of the browser side.
The user on the browser side can immediately know the update of the page stored in the server, if the browser accesses the server periodically. In this case, however, the user needs to periodically re-access the server, for example, by depressing a reload button generally provided in the browser, and this means that a very time-consuming operational load is put on the user.
There is known a mechanism called xe2x80x9csmart-pull mechanismxe2x80x9d as an example of the mechanism for automatically updating the display of the page on the browser side in accordance with the update of the page on the server side. In the smart-pull mechanism, the browserside operation by the user of positively depressing the reload button is automated. The smart-pull mechanism provides the user with such a feeling that the page updated on the server side is automatically sent to the browser, like TV broadcasting.
There is a mechanism called xe2x80x9cpush mechanismxe2x80x9d as another example of the mechanism for automatically updating the display of the page on the browser side. The push mechanism is provided with means for extending an HTML file provided by the information providing server (WWW server), thereby describing in the HTML file various information relating to the display update of the page. The browser, which has received the extended HTML file, refers to information described in the HTML file, which relates to, e.g. the next update time. If the next update time has arrived, the browser issues a request for provision of the updated page to the server. According to the push mechanism, a useless access to the server can be eliminated and such an effect that the page is updated as if in real time can be obtained with the browser-side processing alone.
As examples of such browsers having the automatic function of periodically accessing the server and being capable of reducing the operational load on the user, xe2x80x9cPoint Castxe2x80x9d (produced by Point Cast corporation) and xe2x80x9cCastanet Tunerxe2x80x9d (produced by Marimba corporation) have been provided. These browsers are provided with such devices as enable the user to designate the time interval of automatic update or the browser to receive only different data on the updated page.
In the above-described smart-pull mechanism and push mechanism, it is the browser, and not the server, that updates the display of the page. As mentioned above, even when the page stored in the server has been updated, unless the browser issues a request, the server performs nothing. This characteristic of the client/server system causes some problems described below.
In the smart-pull mechanism, the browser automatically accesses the server on a periodical basis in order to check whether the page has been updated. Although no special attribute is needed in the HTML file constituting the page, the periodical access is repeated unconditionally even if the server-side information is, in fact, not updated, and useless accesses will increase.
On the other hand, the push mechanism is based on the special file (extended HTML file) in which information indicating the next update time is described beforehand as page attribute. Thus, no useless access to the server is performed to check whether the information has been updated on the server side, if it is assumed that the page is actually updated on the server side according to the information on the update time.
However, the push mechanism is effective only in the case where the next update time or timing can be specified in advance. Specifically, in the push mechanism, if it is assumed that the page is updated asynchronously and at a non-specified timing, the update time information cannot be prepared. That is, the client side is unable to know when the automatic update is to be made.
There is a common problem with the smart-pull mechanism and the push mechanism. That is, when the update interval of the page to be provided is very short, e.g. one second, the efficiency of communication processing is very low. The reason is as follows. In general, when communication is started between the server and client, some communication negotiations need to be performed before data is transmitted. In the above example, negotiations have to be performed every one second. In this case, the ratio of the negotiations to the transmission/reception of page text will increase, and the communication efficiency from the standpoint of communication cost, etc. decreases.
It appears that this problem will be solved if the server can voluntarily and directly send updated information to the client, independently from the request by the client. In view of the framework of the current WWW, however, this ideal is not practical. The reason is as follows.
In the current WWW, there is a case where a plurality of relay servers intervene between the server and client. Some relay servers are provided with mechanisms called xe2x80x9cfirewallxe2x80x9d for transferring information only in one direction. The firewall is generally used, in particular, in companies, in order to prevent outside intruder from entering the systems within the companies (e.g. Intranet).
Where such relay servers intervene, the object with which the client directly communicates is the relay server closest to the client, and the object with which the server directly communicates is the relay server closest to the server. Accordingly, the direct client of the server is this relay server, and the server cannot specify the client used by the user on the network.
As a result, the server cannot directly send an update notification to the browser. Moreover, since the intervening relay server receives accesses from many non-specified clients or servers, there is a problem with reliability or stability. It is not ensured that the update notification from the server is quickly sent to the client with safety and exactness.
The present invention has been made in consideration of the above circumstances, and an object of the invention is to provide a real-time information transmission system for realizing real-time information transmission from a server to a client in an existing WWW framework, thereby coping with information update in the server.
Another object of the invention is to proyide a real-time information transmission system, wherein even if the time interval of information update on the server side is very short or information update occurs at a non-specified time, information update on the server side can be efficiently reflected on the client side, and the reliability and stability of communication between the server and client can be enhanced.
Still another object of the invention is to provide a real-time information transmission system for realizing such an exclusive control that the same page cannot simultaneously displayed on a plurality of clients excluding one client.
The present invention provides a real-time information transmission system for transmitting information in real time from a server to a client via a network, the system comprising: determination means for determining, on the basis of an information transmission request from the client to the server, whether the request is a page request or an event request; page transmission means for transmitting, if the determination means has determined that the request is the page request, information of the requested page only once from the server to the client at an originating point of the page request; event generating means for generating events; and event transmission means for transmitting, when the determination means has determined that the request is the event request, those of the events generated by the event generating means which are associated with the event request, from the server to the client at an originating point of the information transmission request in response to the event request issued once.
In this structure, a novel concept of xe2x80x9cevent requestxe2x80x9d for requesting updated information of currently opened page information is introduced in addition to a conventionally known concept of xe2x80x9cpage requestxe2x80x9d. In the state in which the server and the client are being connected, the server continuously transmits event notifications to the client in response to a single event request in accordance with the occurrence of events. Thereby, each time page information has been updated on the server side, the updated content can automatically be reflected on the client side. Moreover, the load of communication between the server and the client can be reduced. In particular, where the interval of occurrence of events is one second or less, the efficiency is high and high real-time performance can be expected. Furthermore, since the server continuously sends event notifications in response to the request (event request) from the client, this invention is realized by using only the existing WWW protocols.
On the other hand, in the conventional push technique on the WWW, for example, a time of update of page information provided by the server is described in the page information and thereby the client (browser) accesses the server at that time. In this technique, problems arise with respect to data, such as time-sequential data, which is updated at a short interval of about one second, since the connection/disconnection of the network occurs frequently.
The present invention is also characterized in that at least one event request information unit for enabling the client, which has received page information sent from the server in response to a page request from the client, to issue the event request, that is, for activating an event notification on the server side, is set in the page information.
In this structure, the client, which received the requested page information from the server, can automatically issue the event request to the server according to the event request information set in the page information, and can activate the event notification. Specifically, by associating the page information with the event, the page information opened on the client side can be dynamically changed according to the event notification sent from the server.
In order for the server to determine whether the client has normally received an event notification, it is necessary to actually send the event notification. However, the server can perform nothing until an event occurs in the server. Thus, even if the page processing is finished in the client, the load for network connection is applied to the server.
According to this invention, in the situation in which each time an event has occurred in the server the event notification has to be sent to the client at the event request originating point, if no event has occurred for a predetermined time period, a special event notification (client state confirmation event notification) for confirming the state of the client at the event request originating point is sent from the server to the client. When the event notification (including the client state confirmation event notification) is sent from the server, the server determines whether the event notification is successful. If the event notification has failed, the network connection for the event notification is cut off on the server side.
In this structure, when no event has occurred for a predetermined time period or more, the special event notification for confirming the state of the client at the event request originating point is generated explicitly and periodically and sent to the client. Thereby, the state of the client can be understood. If the transmission of the event notification fails due to the termination of the page processing in the client or the disconnection of the network, the server cuts off the network connection and the useless load can be reduced.
In an example of application of the client-side processing for the event notification, if the client has received the event notification, the content of the notification may immediately be reflected on the screen. For this purpose, some device is needed when the page information opened on the client side is to be changed.
In the present invention, a predetermined procedure to be executed by the client is set in the page information including the event request information, which is sent from the server in response to the page request from the client. When the client which received the page information changes the display of the page information to display of page information corresponding to another page request, that is, when the client changes to another page, the client cuts off, according to the aforementioned procedure, the network connection associated with the event notification from the server in response to the event request.
In this structure, if the client has changed to another page, the client cuts off the network connection for receiving the event notification for reflecting the update of the previous page. Thus, useless communication can be eliminated. Moreover, the client does not require a special system for this processing.
In this invention, information indicating whether occurrence of an associated event is periodic or non-periodic, information on a time interval if the occurrence of the event is periodic and a predetermined procedure to be executed by the client are set in page information with information on the event request, which page information is transmitted from the server in accordance with the page request from the client. Thereby, when the occurrence of the associated event is periodic and the time interval thereof is greater than a predetermined time, the client which has received the page information temporarily cuts off network connection each time the client receives an event notification from the server in response to the event request, according to the predetermined procedure. The client also executes an operation to issue the event request once again after an event generation scheduled time set by the time interval has arrived.
In this structure, where the occurrence of events is periodic and the interval of occurrence is long, the client temporarily cuts off the network connection. If the set time of occurrence of events has drawn near, the network connection is made again and the event request is issued. Thus, the useless load of network and the load of the CPUs in the server and client can be reduced. Moreover, the client side does not require a special system for this processing.
In the present invention, a predetermined procedure to be executed by the client is set in page information with the event request information, which page information is sent from the server in response to the page request from the client, or in an event notification transmitted from the server in response to the event request from the client, and time information on occurrence of the same event occurs is set in the event notification. Thereby, the client, which has received the event notification, is caused to monitor the arrival of the next event notification according to the predetermined procedure, and to issue the event request to the server where the client could not receive the next event notification from the server at a set time indicated in the time information in the received event notification.
In this structure, where the time of occurrence of the event can be estimated, if the event has not been sent from the server at that time, it is assumed that the network has temporarily been cut off. Then, the event request is issued once again from the client, and the network connection can be resumed. Thus, the reliability is enhanced. Specifically, the connection for the event notification is maintained, but if the connection is cut off due to some external cause, the client automatically re-connects the network. Accordingly, even in the case of an unstable network, the reliability can be expected to some degree. In addition, the client side does not require a special system for this processing.
In the present invention, a procedure for adding time information for issuing a next event request to the event request issued by the client is set in page information with the event request information, which page information is sent from the server in response to the page request from the client. Thereby, when the event request with the time information has been issued from the client, which received the page information, to the server, the server monitors arrival of the next event request from the client, and cuts off network connection relating to the event request, if the server could not receive the next event request at a set time indicated in the time information in the preceding event request.
In this structure, the server can recognize in advance the fixed time of the occurrence of the event request from the client. If the event request has not been issued at that time, the server determines that the client does not normally function (the operation is terminated or the network is disconnected). Thus, the server cuts off the network connection and the useless load on the CPU in the server can be reduced. Moreover, the client does not require a special system for notifying the server of the preset time of occurrence of the next event request.
In the present invention, information on an exclusive page, which is prohibited from being displayed simultaneously on a plurality of clients, is registered in the server. Where the server has received the page request from the client, the server determines whether the requested page is an exclusive page, on the basis of the registered information of the exclusive page. If the request page is the exclusive page, the server determines whether the page is being displayed on another client. If the page is not being displayed on the another client, new page information, in which the event request information is set in the requested page information, is sent to the client at the originating point of the page request. If the page is being displayed on the another client, specific page information, in which specific event request information for issuing a specific event request is set, is sent to the client at the originating point of the page request, instead of the requested page information, and the client is caused to wait for display of the requested page information. Where network connection relating to an event notification from the server to the client which is in the state of displaying the exclusive page is cut off and there are clients which are in the state of waiting for display of the exclusive page, new page information, in which the event request information is set in the requested page information, is sent to one of the clients waiting for the display of the exclusive page as a response to the specific event request.
In this structure, the event request issuance from the client according to the event request information incorporated in the page information is utilized to easily realize a mechanism (page lock mechanism) which prevents simultaneous display of the same page on a plurality of clients. This mechanism has been difficult to achieve in the conventional WWW. Moreover, where the page processing in the client displaying the exclusive page is finished, another client which could not display the page is informed to that effect. Thus, this client can automatically change the display to the actually requested page. Therefore, the user interface is enhanced.
In the present invention, where the page request or the event request has been sent to the server from the client which is in the waiting state since the requested page is the exclusive page and is displayed on another client, processing of the request in the server is changed from normal state.
If the request is issued from the client, which is in the wait state for the locked page, to the server, the processing for the request is changed from a normal one. For example, by ignoring the request, the client itself can be virtually locked. When a control device is controlled from the client side, a control is prevented from being transferred to another client, and the reliability is enhanced.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out hereinafter.